Just-in-Time Pptimizations for High-Performance Java Programs
نویسندگان
چکیده
Our previous experience withan off-lineJava optimizer [6] has shown that some traditional algorithms used in compilers are too slow for a JIT compiler. In this paper we propose and implement faster ways of performing analyses needed for our optimizations. For instance we have replaced reaching definition with constant values and loop induction variables with loop-defined variables. As the result Briki, our JIT compiler, is extremely fast, so that its running time is negligible even when the data sets used with our benchmarks result in execution times of a few seconds. The impact for the same benchmarks running on more realistic problem sizes would be even smaller. Currently the speedups resulting from applying our optimizations are between 10% and 20%, but when the JIT compiler will perform standard optimizations which are absent in the current version of the JIT compiler used by us, the speedups should be similar to the ones observed for Fortran programs—about 50%.
منابع مشابه
Practical Experiences with Java Compilation
The Java programming language and the underlying virtual machine model have introduced new complexities for compilation. Various approaches ranging from just in time (JIT) compilation to ahead of time (AOT) compilation are being explored with the aim of improving the performance of Java programs. The hurdles facing the achievement of high performance in Java and the strengths and weaknesses of ...
متن کاملCompile-time Optimization and Customization in Java and C + MPI
To achieve both of runtime efficiency and maintainability of large-scale and complicated software especially with dynamicity, portability, and concurrency, programmers have strong desire to customize and optimize their software as they need. For exmaple, they may need to perform platform-specific optimizations so as to adapt their software from embedded systems and hand-held devices all the way...
متن کاملE cient Barriers for Persistent Object Caching in a High-Performance Java Virtual Machine
We implemented orthogonal persistence for the Java platform by adding persistent object caching to a high-performance virtual machine that uses exact garbage collection (\EVM"). This paper gives an overview of our design for the read and write barriers needed to support persistence. The key design decision we made was the choice of a pointer swizzling strategy. Pointer swizzling speeds up progr...
متن کاملJIT-Compiler-Assisted Distributed Java Virtual Machine
There is now a strong interest in high-performance execution of multithreaded Java programs in a cluster. Previous efforts to provide for such executions have either used static compilation tools that can transform multithreaded Java programs into parallel versions, or interpreter-based cluster-aware JVMs that offer the needed support. They failed however to be fully compliant with the Java lan...
متن کاملPerformance Evaluation: Java vs C++
Java is becoming much more widely used in academic settings because it offers a nice language for both introductory courses as well as more advanced courses. There is, however, always a kind of "apology" made for Java due to its slower execution. Java implementations are steadily improving with the use of JIT (Just In Time) compilation as well as strides being made in other areas affecting runt...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- Concurrency - Practice and Experience
دوره 9 شماره
صفحات -
تاریخ انتشار 1997